package com.ruoyi.qsng.service.impl;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.uuid.SnowFlakeUtil;
import com.ruoyi.qsng.domain.KCourse;
import com.ruoyi.qsng.mapper.KCourseMapper;
import com.ruoyi.qsng.service.IKCourseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;

import java.util.List;

/**
 * 课程信息Service业务层处理
 *
 * @author kanglou
 * @date 2023-06-07
 */
@Service
public class KCourseServiceImpl implements IKCourseService {
    @Autowired
    private KCourseMapper kCourseMapper;

    /**
     * 查询课程信息
     *
     * @param id 课程信息主键
     * @return 课程信息
     */
    @Override
    public KCourse selectKCourseById(String id) {
        return kCourseMapper.selectKCourseById(id);
    }

    /**
     * 查询课程信息
     *
     * @param id 课程信息主键
     * @return 课程信息
     */
    @Override
    public KCourse selectKCourseByIdForApp(String id) {
       Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
        //Long userId = 323160366685097984L;
        Assert.notNull(userId, "获取用户id失败！");
        KCourse kCourse = new KCourse();
        kCourse.setUserId(userId);
        kCourse.setId(id);
        return kCourseMapper.selectKCourseByIdForApp(kCourse);
    }

    /**
     * 查询课程信息列表
     *
     * @param kCourse 课程信息
     * @return 课程信息
     */
    @Override
    public List<KCourse> selectKCourseList(KCourse kCourse) {
        return kCourseMapper.selectKCourseList(kCourse);
    }

    /**
     * 查询课程信息列表
     *
     * @param kCourse 课程信息
     * @return 课程信息
     */
    @Override
    public List<KCourse> selectKCourseListForApp(KCourse kCourse) {
        return kCourseMapper.selectKCourseListForApp(kCourse);
    }

    /**
     * 新增课程信息
     *
     * @param kCourse 课程信息
     * @return 结果
     */
    @Override
    public int insertKCourse(KCourse kCourse) {
        kCourse.setId(SnowFlakeUtil.getNextId());
//        kCourse.setCreateTime(DateUtils.getNowDate());
        return kCourseMapper.insertKCourse(kCourse);
    }

    /**
     * 修改课程信息
     *
     * @param kCourse 课程信息
     * @return 结果
     */
    @Override
    public int updateKCourse(KCourse kCourse) {
        kCourse.setUpdateTime(DateUtils.getNowDate());
        return kCourseMapper.updateKCourse(kCourse);
    }

    /**
     * 批量删除课程信息
     *
     * @param ids 需要删除的课程信息主键
     * @return 结果
     */
    @Override
    public int deleteKCourseByIds(String[] ids) {
        return kCourseMapper.deleteKCourseByIds(ids);
    }

    /**
     * 删除课程信息信息
     *
     * @param id 课程信息主键
     * @return 结果
     */
    @Override
    public int deleteKCourseById(String id) {
        return kCourseMapper.deleteKCourseById(id);
    }
}
